/**
 * 策略模式 : strategy
 * <p>
 * 声明 : 对一系列的策略(比如算法)加以封装 , 为所有策略定义一个抽象策略接口或抽象类,并通过继承该抽象策略接口对所有策略加以封装和实现,具体的策略交由客户端决定
 * 作用 : Strategy模式主要用来平滑的处理策略的切换
 * <p>
 * 经典场景 : 商家打折策略调整
 * <p>
 * 策略的抽象 的接口或抽象类叫做 : Strategy
 * 实现各种策略抽象 的类叫做 : ConcreteStrategy
 * 策略的管理类(外部封装) 的类叫做 : StrategyContext 根据不同的策略执行不同的行为
 */
package name.ealen.strategy;